#!/bin/bash

# git checkout develop
# git pull

echo 'hello! Begin build and SCP to server'
echo `pwd`
IP=x.x.x.x
PROJECT_NAME="ai_premium_predictor"

# 配置参数
TARGET_SERVER=${IP}  # 目标服务器 IP
TARGET_USER="root"   # 目标服务器用户名
PROJECT_NAME="ai_premium_predictor"
DOCKER_IMAGE="ai_premium_predictor"
DOCKER_TAG="latest"
DEPLOY_DIR="/tmp/${PROJECT_NAME}"  # 目标服务器上的部署目录

# 步骤 1: 打包代码
echo "📦 打包项目文件..."
tar -czf ${PROJECT_NAME}.tar.gz *

# 步骤 2: 传输代码到目标服务器
echo "🚀 传输代码到目标服务器 ${TARGET_SERVER}..."
rsync -avz --progress ${PROJECT_NAME}.tar.gz ${TARGET_USER}@${TARGET_SERVER}:${DEPLOY_DIR}.tar.gz

# 步骤 3: 在目标服务器上解压代码并构建 Docker 镜像
echo "🔧 在目标服务器上构建 Docker 镜像并部署服务..."
ssh ${TARGET_USER}@${TARGET_SERVER} << EOF
    set -e
    echo "📂 创建部署目录 ${DEPLOY_DIR}..."
    mkdir -p ${DEPLOY_DIR}

    echo "🧹 清理部署目录中的历史文件..."
    rm -rf ${DEPLOY_DIR}/*

    cd ${DEPLOY_DIR}

    echo "📦 解压项目文件..."
    tar -xzf ${DEPLOY_DIR}.tar.gz
    rm ${DEPLOY_DIR}.tar.gz

    echo "🐳 构建 Docker 镜像..."
    docker build -t ${DOCKER_IMAGE}:${DOCKER_TAG} .

    echo "🛑 停止并删除旧容器..."
    docker stop ${PROJECT_NAME} || true
    docker rm ${PROJECT_NAME} || true

    echo "🚀 启动新容器..."
    docker run -d -p 8800:8800 --name ${PROJECT_NAME} ${DOCKER_IMAGE}:${DOCKER_TAG}

    echo "✅ 部署完成！"
EOF

# 步骤 4: 清理本地打包文件
echo "🧹 清理本地打包文件..."
rm ${PROJECT_NAME}.tar.gz

echo "🎉 部署流程完成！"